package com.sgcc.pda.data.dao.impl;

import android.content.Context;

import com.sgcc.pda.data.entity.base.SharepreferenceInfo;
import com.sgcc.pda.util.ContentProviderUtil;

/**
 * 描 述：
 * 作 者：suven  2020/5/29 16:59
 * 修改描述：
 * 修 改 人：  2020/5/29 16:59
 * 修改版本：
 */
public class CommReadModelUtil {

    /**
     * 设置电表通讯方式
     */
    private static final String METER_COMM_SETTING = "mode";// editor key
    private static final String METER_COMM_MODE = "mode";// 电表通讯方式
    private static final String METER_485_BAUD = "mode_485_baud";// 485波特率
    private static final String METER_485_DATA_BIT = "mode_485_data_bit";// 485数据位
    private static final String METER_485_CHECK_BIT = "mode_485_check_bit";// 485校验位
    private static final String METER_485_STOP_BIT = "mode_485_stop_bit";// 485停止位


    /**
     * 设置电表通讯方式
     *
     * @param context
     * @param protocolType "0" = "默认"
     *                     "1" = "485串口"
     *                     "2" = "红外"
     *                     "3" = "激光红外"
     */
    public static void setMeterCommMode(Context context, String protocolType) {
        SharepreferenceInfo sharepreferenceInfo = new SharepreferenceInfo();
        sharepreferenceInfo.setKey(METER_COMM_MODE);
        sharepreferenceInfo.setValue(protocolType);
        sharepreferenceInfo.setEditorKey(METER_COMM_SETTING);
        sharepreferenceInfo.setEditorMode(Context.MODE_PRIVATE);
        sharepreferenceInfo.setType(0);
        ContentProviderUtil.setSharepreference(context, sharepreferenceInfo);
    }

    /**
     * 获取保存的电表通讯方式
     *
     * @param context
     * @return "0" = "默认"
     * "1" = "485串口"
     * "2" = "红外"
     * "3" = "激光红外"
     */
    public static String getMeterCommMode(Context context) {
        return ContentProviderUtil.getSharepreferenceValue(context, METER_COMM_SETTING, METER_COMM_MODE);
    }

    /**
     * 设置电表通讯方式-485串口波特率
     *
     * @param context
     * @param baud    波特率范围为1200、2400、4800、9600、14400、19200、38400
     *                默认为2400
     */
    public static void setMeter485Baud(Context context, String baud) {
        SharepreferenceInfo sharepreferenceInfo = new SharepreferenceInfo();
        sharepreferenceInfo.setKey(METER_485_BAUD);
        sharepreferenceInfo.setValue(baud);
        sharepreferenceInfo.setEditorKey(METER_COMM_SETTING);
        sharepreferenceInfo.setEditorMode(Context.MODE_PRIVATE);
        sharepreferenceInfo.setType(0);
        ContentProviderUtil.setSharepreference(context, sharepreferenceInfo);
    }

    /**
     * 获取电表通讯方式-485串口波特率
     *
     * @param context
     * @return 波特率范围为1200、2400、4800、9600、14400、19200、38400; 默认为2400
     */
    public static String getMeter485Baud(Context context) {
        return ContentProviderUtil.getSharepreferenceValue(context, METER_COMM_SETTING, METER_485_BAUD);
    }

    /**
     * 设置电表通讯方式-485串口数据位
     *
     * @param context
     * @param bit     数据位范围：5、6、7、8
     *                默认8
     */
    public static void setMeter485DataBit(Context context, String bit) {
        SharepreferenceInfo sharepreferenceInfo = new SharepreferenceInfo();
        sharepreferenceInfo.setKey(METER_485_DATA_BIT);
        sharepreferenceInfo.setValue(bit);
        sharepreferenceInfo.setEditorKey(METER_COMM_SETTING);
        sharepreferenceInfo.setEditorMode(Context.MODE_PRIVATE);
        sharepreferenceInfo.setType(0);
        ContentProviderUtil.setSharepreference(context, sharepreferenceInfo);
    }

    /**
     * 获取电表通讯方式-485串口数据位
     *
     * @param context
     * @return 数据位范围：5、6、7、8; 默认8
     */
    public static String getMeter485DataBit(Context context) {
        return ContentProviderUtil.getSharepreferenceValue(context, METER_COMM_SETTING, METER_485_DATA_BIT);
    }

    /**
     * 设置电表通讯方式-485串口校验位
     *
     * @param context
     * @param bit     校验位范围：无(0)、奇(1)、偶(2)
     *                默认偶(2)
     */
    public static void setMeter485CheckBit(Context context, String bit) {
        SharepreferenceInfo sharepreferenceInfo = new SharepreferenceInfo();
        sharepreferenceInfo.setKey(METER_485_CHECK_BIT);
        sharepreferenceInfo.setValue(bit);
        sharepreferenceInfo.setEditorKey(METER_COMM_SETTING);
        sharepreferenceInfo.setEditorMode(Context.MODE_PRIVATE);
        sharepreferenceInfo.setType(0);
        ContentProviderUtil.setSharepreference(context, sharepreferenceInfo);
    }

    /**
     * 获取电表通讯方式-485串口校验位
     *
     * @param context
     * @return 校验位范围：无(0)、奇(1)、偶(2);  默认偶(2)
     */
    public static String getMeter485CheckBit(Context context) {
        return ContentProviderUtil.getSharepreferenceValue(context, METER_COMM_SETTING, METER_485_CHECK_BIT);
    }

    /**
     * 设置电表通讯方式-485串口停止位
     *
     * @param context
     * @param bit     停止位范围：0、1、1.5、2
     *                默认2
     */
    public static void setMeter485StopBit(Context context, String bit) {
        SharepreferenceInfo sharepreferenceInfo = new SharepreferenceInfo();
        sharepreferenceInfo.setKey(METER_485_STOP_BIT);
        sharepreferenceInfo.setValue(bit);
        sharepreferenceInfo.setEditorKey(METER_COMM_SETTING);
        sharepreferenceInfo.setEditorMode(Context.MODE_PRIVATE);
        sharepreferenceInfo.setType(0);
        ContentProviderUtil.setSharepreference(context, sharepreferenceInfo);
    }

    /**
     * 获取电表通讯方式-485串口停止位
     *
     * @param context
     * @return 停止位范围：0、1、1.5、2; 默认2
     */
    public static String getMeter485StopBit(Context context) {
        return ContentProviderUtil.getSharepreferenceValue(context, METER_COMM_SETTING, METER_485_STOP_BIT);
    }
}
